The present invention relates to computer software and, more particularly, to updating computer software. A major objective of the invention is to provide for more customized update selection.
As computers have become pervasive in our society, computer software manufacturers compete aggressively for market share. For many, the objective is to get more features to the marketplace ahead of competitors. Of course, competition does not cease with the sale of a software product, as a competitor may subsequently introduce a competitive product with even more features. Newer versions with greater features sets are constantly being developed. To maintain customer loyalty between major version introductions, many computer manufacturers provide free or reduced-cost upgrades so that a purchaser can benefit from ongoing product development.
Modem software programs can be too complex for thorough testing. Even if software is thoroughly tested on one hardware configuration, it can be difficult to validate its performance on all possible hardware configurations on which it might be installed. Furthermore, it can be infeasible to test it with all possible software configurations (operating system versions and other software) that might be applicable. Given the time pressure for product introductions, it is not surprising that program defects and program incompatibilities are common.
As program defects and incompatibilities are discovered in purchased software, the manufacturer may create and distribute, usually at no cost to owners of the software, patches to address these problems. Herein, a “patch” is software that fixes or replaces existing software without adding new features, while an “upgrade” is software that adds new features and may or may not address defects and incompatibilities. “Patches” and “upgrades” are collectively referred to herein as “program updates” or more succinctly as “updates”.
Commonly, updates are made available on the Internet (e.g., on a website run by the software manufacturer). Users can then download and install updates from the website. Sometimes problems arise after update installation-e.g., compatible software is no longer compatible. As a result, many users decline updates or do not bother to check on their availability. For this and other reasons, the number of available updates for a software program can grow to be unwieldy—e.g., there can be tens of available updates for a single program. The large number of available updates can further discourage a user from updating software.
On the other hand, even a reluctant user may want to upgrade to address security issues, to add a much-desired feature, or to address incompatibilities arising from newly installed hardware or software, etc. Nonetheless, the user might not want to install all the available updates, each of which imposes some installation burden and carries with it some risk on creating an incompatibility that did not exist before the update.
In view of this situation, many software manufacturers document the advantages of each update so that a user can make a cost-benefit analysis in deciding whether or not to implement the update. Some companies rank updates by importance to help a user select which updates to install, if not all are to be installed. For example, Microsoft Corporation distinguishes “critical” and “non-critical” updates. Still, a user can be confronted with a list of tens of “critical” updates and have a difficult time determining which updates would really be beneficial. Accordingly, what is needed is a more effective system for determining which updates should be installed.